﻿namespace Postnuclear.Dependency.Tree
  {
  /// <summary>
  /// Describes element in dependency tree.
  /// Provides possibility to change the holder instance of the dependency element.
  /// Notifies if the dependency value is changed.
  /// </summary>
  /// <typeparam name="THolder">The type of the holder.</typeparam>
  internal interface IDependencyTreeElement<in THolder>
    : INotifyValueChanged
    where THolder : class
    {
    // Properties

    /// <summary>
    /// Updates the dependency holder instance.
    /// </summary>
    /// <param name="holder">The holder.</param>
    void UpdateHolderValue(THolder holder);
    }
  }